Comprehensive testing of IC devices that are used in various applications is an integral part of producing a quality product. It is very costly when an IC device malfunctions due to incomplete testing or other form of failure. Replacement or repair cost increase exponentially when a failing device has been integrated in a product, such as a consumer electronics product. The malfunction of a single IC device may cause the product to fail.
IC devices are designed to include numerous transistors and logic circuits. Each transistor and logic circuit may have a particular function, or coupled to form a system performing a task of an IC. In some instances, issues may be encountered during the fabrication of the various transistors and/or the process of coupling these transistors to one another. A defective transistor or the coupling of such transistor may render an entire IC unusable. One goal of IC testing is to identify circuits that may have a defect due to fabrication or processing, while a secondary goal is to identify the location of such defect.
One type of IC is a programmable logic device (PLD) such as a field programmable gate array (FPGA), which is designed to be user-programmable such that a user may implement logic designs of his/her choice. In a typical FPGA an array of configurable logic blocks (CLBs) may be coupled to programmable input/output blocks (IOBs). The CLBs and IOBs are interconnected by a hierarchy of programmable routing resources. These CLBs, IOBs, and programmable routing resources are customized by loading a configuration bitstream into configuration memory cells of the FPGA. Since implementations of a circuit design in an FPGA have become more complex, the number of CLBs, IOBs, and other resources (such as multiplexers and block RAMs) have increased. Also, the routing resources to make the connections between the various blocks have increased as well. Programmable logic devices are one group of integrated circuits which particularly benefit from multi step testing, such as functional testing, performance testing, etc. Typically, an FPGA includes many select modules distributed throughout the device. In an example, an IOB may have at least one select module, where a select circuits may be used to couple between numerous input/or output signals coupled to the IOB.
Testing of an IC including embedded multiplexers/select circuits having numerous terminals can be very challenging, specifically if the numerous terminals can not be accessed directly. In general, multiplexers/select modules have vast design implementations. Therefore, ensuring proper testing of the select modules and other circuits is imperative to the success of the various implementations of a design of an IC. In another example, a PLD may include numerous multiplexers/select modules. A circuit designed including select module implementation may undergo modifications during the development phase of a product. It is crucial to ensure that all select modules implemented in a design are free of defects, in order to concentrate on the design aspect rather than the uncertainty revolving around IC defects, and specifically defects in the select modules.
Therefore, the need exists for test method and system for verifying and/or functionally testing select circuits/modules implemented in an IC to be free of defects.